home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include "a.out.h"
-
- void objdump(filename)
- char *filename;
- {
- FILE *f;
- struct exec ex;
- long i;
-
- if ((f = fopen(filename, "r")) == NULL)
- {
- perror(filename);
- return;
- }
- if (fread(&ex, sizeof(ex), 1, f) != 1)
- {
- fprintf(stderr, "%s: Cannot read header\n", filename);
- fclose(f);
- return;
- }
- if (BADMAG(ex))
- {
- fprintf(stderr, "%s: Not an a.out file\n", filename);
- fclose(f);
- return;
- }
- if (fseek(f, (long)A_HEADERSIZ, SEEK_SET) < 0)
- {
- fprintf(stderr, "Fseek failed on %s\n", filename);
- fclose(f);
- exit(1);
- }
- for (i = ex.a_text + ex.a_data; i > 0; --i)
- putchar(fgetc(f));
- fclose(f);
- }
-
- int main(argc, argv)
- int argc;
- char **argv;
- {
- if (argc < 2)
- {
- fprintf(stderr, "Usage: %s file\n", argv[0]);
- exit(1);
- }
- objdump(argv[1]);
- exit(0);
- }
-